<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2005/xpath-functions" xmlns:mpeg7="urn:mpeg:mpeg7:schema:2001" xmlns:amp="mpeg7_amp" xmlns:voc="vocabularies" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" exclude-result-prefixes="amp fn fo mpeg7 voc xs xsi">

<xsl:include href="top.xsl"></xsl:include>
<xsl:include href="down.xsl"></xsl:include>
<xsl:include href="utils.xsl"/>


<!-- Parametros del xsl -->
<xsl:param name="time"/>
<xsl:param name="base_url"/>
<xsl:param name="keys_search"/>
<xsl:param name="action"/>
<xsl:param name="id"/>
<xsl:param name="start" select="1" as="xs:integer"/>
<xsl:param name="filter"/>
<xsl:param name="order"/>


<xsl:variable name="base_img">img/mobile/</xsl:variable>
<xsl:variable name="contents_page">6</xsl:variable>

	<xsl:template match="/mpeg7:Mpeg7">
		
		<!-- Llamada a la platilla top (compone la parte superior de la pagina )-->
                <xsl:call-template name="top"/>
                
                <xsl:call-template name="topLogo"/>
                
                <!-- Varibles para los enlaces de ordenacion de los resultados-->
                <xsl:variable name="alfabetico">
                    <xsl:value-of select="$base_url"/><xsl:value-of select="$keys_search"/>&amp;start=1
                </xsl:variable>
                
                <xsl:variable name="rating">
                    <xsl:value-of select="$base_url"/><xsl:value-of select="$keys_search"/>&amp;start=1&amp;order=<xsl:text>rating</xsl:text>
                </xsl:variable>
                
                
                <!-- Barra de navegación para ordenar -->
                <div id="barra_order">Ordenar: <a><xsl:attribute name="href"><xsl:value-of select="$alfabetico"/></xsl:attribute> Alfabético</a> | <a><xsl:attribute name="href"><xsl:value-of select="$rating"/></xsl:attribute> Rating</a></div>
                
                <!-- Numero total de contenidos obtenidos -->
                <xsl:variable name="total_contenidos"><xsl:value-of select="count(mpeg7:Description/mpeg7:MultimediaContent/mpeg7:Collection/mpeg7:ContentCollection/mpeg7:Content)"/></xsl:variable>
                
                
                <!--Se lanza la plantilla que lista el contenido -->
                    <!--Se comprueba si existe un tipo de ordenacion requerida-->
                    <xsl:choose>
                        <xsl:when test="$order='rating'">
                            <xsl:apply-templates select="mpeg7:Description/mpeg7:MultimediaContent/mpeg7:Collection/mpeg7:ContentCollection/mpeg7:Content">
                                <!--Se ordena por rating-->
                                <xsl:sort select="mpeg7:AudioVisual/mpeg7:CreationInformation/mpeg7:Classification/mpeg7:MediaReview/mpeg7:Rating/mpeg7:RatingValue" order="descending"/>
                            </xsl:apply-templates>
                        </xsl:when>
                        <xsl:otherwise>
                            <xsl:apply-templates select="mpeg7:Description/mpeg7:MultimediaContent/mpeg7:Collection/mpeg7:ContentCollection/mpeg7:Content"/>
                        </xsl:otherwise>
                    </xsl:choose>
             
                
                <!-- Llamada a la plantilla paginador -->
                <xsl:call-template name="paginador">
                    <xsl:with-param name="total_contenidos" select="$total_contenidos"/>
                </xsl:call-template>
                
                <!-- Numero total de contenidos obtenidos -->
                <div class="menu_pie">Resultados obtenidos: <xsl:value-of select="$total_contenidos"/> | <a href="index.html">Inicio</a></div>
                
                <!-- Llamada a la plantilla down (compone la parte inferior de la pagina ) -->
		<xsl:call-template name="down"/>
		
	</xsl:template>


        <!--Calculamos el ultimo contenido que debe mostrarse en esta pagina-->
        <xsl:variable name="ultimo_content"><xsl:value-of select="$start+$contents_page"/></xsl:variable>

	<!-- Plantilla para procesar cada contenido -->
	<xsl:template match="mpeg7:Content">


                <!-- Variable que controla la posicion actual para la paginacion de resultados -->
                <xsl:variable name="posicionactual" select="position()"/>

                <!-- Si el contador esta dentro del rango que se desea mostrar en la pagina -->
                <xsl:if test="$posicionactual &gt;= $start">
               
                    <xsl:if test="$posicionactual &lt;  $ultimo_content">
                    
                        <!--Titulo del contenido -->                      
                        <xsl:variable name="title">
                            <xsl:variable name="aux">
                                <xsl:call-template name="cleanTitle">
                                    <xsl:with-param name="string" select="mpeg7:AudioVisual/mpeg7:CreationInformation/mpeg7:Creation/mpeg7:Title"/>
                                </xsl:call-template>
                            </xsl:variable>
                            <xsl:call-template name="cortaTexto">
                                <xsl:with-param name="string" select="$aux"/>
                                <xsl:with-param name="long" select="30"/>
                            </xsl:call-template>
                        </xsl:variable>
                        
                        
                        <!--Identificador del contenido -->
                        <xsl:variable name="id"><xsl:value-of select="@id"/></xsl:variable>
                        <!-- Se obtiene el tipo del contenido -->
                        <xsl:variable name="type"><xsl:value-of select="@xsi:type"/></xsl:variable>
                        <!-- Nombre del repositorio desde el que se ha obtneido-->
                        <xsl:variable name="repository" select="mpeg7:AudioVisual/mpeg7:CreationInformation/mpeg7:Creation/mpeg7:Creator/mpeg7:Instrument/mpeg7:Tool/voc:Name"/>
                        <!-- Icono del repositorio -->
                        <xsl:variable name="iconRep" select="mpeg7:AudioVisual/mpeg7:CreationInformation/mpeg7:Creation/mpeg7:Creator/mpeg7:Instrument/mpeg7:Tool/voc:Definition"/>
                        <!-- Fecha de creaccion -->
                        <xsl:variable name="date" select="mpeg7:AudioVisual/mpeg7:CreationInformation/mpeg7:Creation/mpeg7:CreationCoordinates/mpeg7:Date/mpeg7:TimePoint"/>

                        <!--Inicio de presentacion de cada contenido -->
                        <div class="vEntry padL3"> 
                           <table>
                                    <tr valign="top">
                                            <td>
                                                <img class="mini_snapshot">
                                                    <xsl:attribute name="src"><xsl:value-of select="mpeg7:AudioVisual/mpeg7:CreationInformation/mpeg7:Creation/mpeg7:TitleMedia/mpeg7:TitleImage/mpeg7:MediaUri"/></xsl:attribute>
                                                </img>
                                            </td>
                                            <td>
                                                    <div class="vTitle"><a><xsl:attribute name="href"><xsl:value-of select="$base_url"/><xsl:value-of select="$keys_search"/>&amp;action=<xsl:value-of select="$action"/>&amp;id=<xsl:value-of select="$id"/>&amp;start=<xsl:value-of select="$start"/><xsl:call-template name="_order"/></xsl:attribute><xsl:value-of select="$title"/></a></div>
                                                    <div class="line">
                                                        <xsl:call-template name="getIcons"><xsl:with-param name="tipo" select="$type"/></xsl:call-template>
                                                           <!-- <a href=""><img alt="download" class="iconL"><xsl:attribute name="src"><xsl:value-of select="$img_base"/>descarga.png</xsl:attribute></img><xsl:text disable-output-escaping="yes"><![CDATA[</img>]]></xsl:text></a>
                                                            <img alt="rating" class="iconL"><xsl:attribute name="src"><xsl:value-of select="$img_base"/>rating.gif</xsl:attribute></img><xsl:text disable-output-escaping="yes"><![CDATA[</img>]]></xsl:text>-->
                                                        <img><xsl:attribute name="src"><xsl:value-of select="$base_img"/><xsl:value-of select="$iconRep"/></xsl:attribute></img> 
                                                        <!--<xsl:value-of select="$date"/>-->
                                                    </div>
                                            </td>
                                    </tr>
                            </table>	
                        </div>

                    </xsl:if>
                </xsl:if>
	</xsl:template>
        
        
        <!--///////////////////////////////////////////
        Plantilla que muestra el paginador de resultados
        En dispositivos moviles no mostramos enlaces a cada numero de pagina
        //////////////////////////////////////////-->
        
        <xsl:template name="paginador">
            <xsl:param name="total_contenidos"/>
                
                <!--Obtenemos el numero de paginas totales para el paginador -->
                <xsl:variable name="numPages" select="$total_contenidos idiv $contents_page"/>
               
                <!--Numero para la pagina actual-->
                <xsl:variable name="actualPage" select="$start idiv $contents_page"/>
                
                <div class="menu_pie">
                    <!-- S muestra la pagina actual -->
                    <xsl:text>Pagina </xsl:text><xsl:value-of select="$actualPage+1"/> de <xsl:value-of select="$numPages+1"/>
                    
                    <!-- Enlace a pagina anterior-->
                    <xsl:if test="$start - $contents_page &gt; 0">
                       | <a id="anterior"><xsl:attribute name="href"><xsl:value-of select="$base_url"/><xsl:value-of select="$keys_search"/>&amp;start=<xsl:value-of select="$start - $contents_page"/><xsl:call-template name="_order"/></xsl:attribute>Anterior</a> 
                    </xsl:if>              
                   
                    <!-- Enlace a siguiente pagina -->
                    <xsl:if test="$start + $contents_page &lt; $total_contenidos">
                        | <a id="siguiente"><xsl:attribute name="href"><xsl:value-of select="$base_url"/><xsl:value-of select="$keys_search"/>&amp;start=<xsl:value-of select="$start + $contents_page"/><xsl:call-template name="_order"/></xsl:attribute>Siguiente</a>
                    </xsl:if>
                </div>                

        
        </xsl:template>
        
        
        
        
        
        <!--///////////////////////////
            Obtiene los iconos de tipo de contenido y repositorio
        ///////////////////////////////////////////////////-->
        <xsl:template name="getIcons">
            <xsl:param name="tipo"/>

            <xsl:choose>
                <xsl:when test="$tipo='Mpeg7:ImageType'">
                    <xsl:variable name="icon_type"><xsl:value-of select="$base_img"/>imagen.gif</xsl:variable>
                    <xsl:variable name="type">imagen</xsl:variable>
                    <img class="iconL"><xsl:attribute name="src"><xsl:value-of select="$icon_type"/></xsl:attribute></img>   
                </xsl:when>
                <xsl:when test="$tipo='Mpeg7:AudioVisualType'">
                   <xsl:variable name="icon_type"><xsl:value-of select="$base_img"/>video.gif</xsl:variable>
                   <xsl:variable name="type">video</xsl:variable>
                   <img class="iconL"><xsl:attribute name="src"><xsl:value-of select="$icon_type"/></xsl:attribute></img>   
                </xsl:when>
                <xsl:otherwise>
                    <xsl:variable name="icon_type"><xsl:value-of select="$base_img"/>video.gif</xsl:variable>
                    <img class="iconL"><xsl:attribute name="src"><xsl:value-of select="$icon_type"/></xsl:attribute></img>   
                </xsl:otherwise>
            </xsl:choose>
          
        </xsl:template>
        
        <!--/////////////////////////////////////////////////////
        Se obtiene la url para la paginacion si hay filtro de ordenacion
        //////////////////////////////////////////////-->
        <xsl:template name="_order">
            <!--Posible inclusion de filtro de ordenacion-->
            <xsl:choose>
                <xsl:when test="$order!=''">&amp;order=rating</xsl:when>
                <xsl:otherwise></xsl:otherwise>
            </xsl:choose>
           
        </xsl:template>
        
        
</xsl:stylesheet>
